//
//  DKRequestModel.h
//  ZhangAo
//
//  Created by 张奥 on 15/4/15.
//  Copyright (c) 2015年 DKHS. All rights reserved.
//

#import "DKModel.h"

typedef enum {
    DKHTTPMethodGet,
    DKHTTPMethodPost,
    DKHTTPMethodPut,
    DKHTTPMethodDelete,
    DKHTTPMethodMultipart,
    
    DKHTTPMethodDefault = DKHTTPMethodPost
} DKHTTPMethod;

@protocol DKRequestModelConfig

@required

- (NSString *)url;

- (NSString *)baseUrl;

@optional

/**
 请求的最终地址，默认是以 baseUrl 和 url 拼接而成
 */
- (NSString *)requestURL;

- (DKHTTPMethod)HTTPMethod;

- (NSDictionary<NSString *, NSString *> *)HTTPHeaders;

- (Class)responseModelClass;

- (NSString *)responseResultDataKey;

- (NSString *)responseResultCodeKey;

- (NSString *)responseResultMessageKey;

/**
 *  是否依赖于当前用户。如果依赖，则可能会在用户注销时取消这个请求。默认为 YES。
 */
- (BOOL)dependingOnCurrentUser;

// 是否请求已带 JSON 参数, 如果是, 则忽略requestModel里的请求属性
- (NSString *)queryString;

@end

////////////////////////////////////////////////////////

@interface DKRequestModel : DKModel <DKRequestModelConfig>

// 自定义对象，不会作为请求参数
@property (nonatomic, strong) id userInfo;

@end

@interface DKResponseModel : DKModel

@end
